"""
name: 教学案例2 扩展  使用图标
version: 1.0
"""
import sys

from PyQt5.QtCore import pyqtSignal
from PyQt5.QtWidgets import QApplication, QWidget

from ui_example4 import Ui_Form
from ui_example5 import Ui_EditForm


class EditForm(QWidget):
    # 自定义信号，当点击界面保存按钮时，发送编辑的数据
    edit_data = pyqtSignal(str)

    def __init__(self, parent=None):
        super().__init__(parent=parent)
        self.ui = Ui_EditForm()
        self.ui.setupUi(self)

    def on_pushButton_pressed(self):
        # 发射信号，点击按钮时触发, 保存数据
        self.edit_data.emit(self.ui.textEdit.toPlainText())
        self.ui.textEdit.clear()
        # 保存完毕后自动关闭编辑窗口
        self.close()


# 步骤2：创建一个界面类，用于应用刚导入的布局类的布局
class MyDialog(QWidget):

    def __init__(self, parent=None):
        # 调用父类QWidget的初始化函数
        super().__init__(parent)
        # 步骤3：创建一个布局类的对象
        self.ui = Ui_Form()
        # 步骤4：布局类对象的setupUi函数，将设计的布局应用到MyDialog界面中
        self.ui.setupUi(self)
        # 使用界面中的控件
        self.ui.textEdit.setPlainText('Hello World!')  # 设置textEdit的文本内容
        self.ui.textEdit.setReadOnly(True)  # 设置textEdit的文本为只读，不可编辑


    def on_pushButton_2_pressed(self):
        # 创建子界面
        self.edit = EditForm()
        # 使用自定义信号，当子界面edit_data信号发射时，
        # 将信号传递的数据，使用textEdit的append函数添加到其内容尾部
        self.edit.edit_data.connect(self.ui.textEdit.append)
        self.edit.show()


if __name__ == '__main__':
    app = QApplication(sys.argv)
    # 创建自定义界面MyDialog的实例（对象）
    dialog = MyDialog()
    dialog.show()
    sys.exit(app.exec_())
